package util;

import java.util.Vector;

import net.rim.device.api.ui.Font;

public class TextSplit {
	Font shrinkedFont;
	
	public Vector split2(Font font, String text, int maxWidth) {
		Vector res = new Vector();
		int restoWidth=Integer.MAX_VALUE;
		String resto = text;
		while (restoWidth>maxWidth) {
			int lineaEnd = split(font, resto, maxWidth);
			String linea = resto.substring(0,lineaEnd);
			resto = resto.substring(lineaEnd);
			restoWidth = font.getAdvance(resto);
			res.addElement(linea);
		}
		res.addElement(resto);
		return res;
	}
 
	private int split(Font font, String text, int maxWidth) {
		int currWidth=0;
		int i=0;
		while (i<text.length() && currWidth<maxWidth) {
			currWidth=font.getAdvance(text.substring(0, i));
			i++;
		}
		if (i==text.length())
			return i-1;
		int cutPoint=i;
		while (i>=0 && text.charAt(i)!=' ') { //retrocede buscando un espacio para cortar
			i--;
		}
		int res=i+1;
		if (i<2) 
			res = cutPoint; //si no encontro espacio corta por el punto original
		return res;
	}

	public Font getShrinkedFont() {
		return shrinkedFont;
	}
}
